import axios from 'axios'
import store from '@/store'
import router from '@/router'
import {message} from 'ant-design-vue';

const notTokenList = ["login/"]
// 首先我们看下请求拦截器的写法;在请求或响应被 then 或 catch 处理前拦截它们。
axios.interceptors.request.use(config => {

    config.baseURL = "/api";
    for (let i = 0; i < notTokenList.length; i++) {
        if (config.url.endsWith(notTokenList[i])) {
            return config
        }
    }
    console.log(store);
    config.headers['authorization'] = store.state.token.token
    return config;
})


// 添加响应拦截器
axios.interceptors.response.use(res => {
    if (res.status === 200) {
        return res.data
    } else if (res.status === 201) {
        message.success('添加成功');
    } else if (res.status === 204) {
        message.success('删除成功');
    }
}, err => {
    if (err.response.status === 403 || err.response.status === 400) {
        router.push("/login")
        return
    }
    return Promise.reject("错误")
});
/**
 * error => {
    // 对响应错误做点什么;没有权限401，去登录界面
    // if (error.response.status === 401) {
    //
    // } else if (error.response.status === 403) {
    //     window.$toast('暂无权限')
    // } else {
    //     window.$toast('网络错误')
    // }

    return Promise.reject(error);
}
 */

export default axios